package com.wenx.v3system.modular.cloud.service;

import java.util.List;

/**
 * 系统部门用户服务接口
 */
public interface SysDepartmentUserService {

    /**
     * 根据用户ID获取部门列表
     *
     * @param userId 用户ID
     * @return 部门ID列表
     */
    List<Long> getDepartmentIdsByUserId(Long userId);

    /**
     * 根据部门ID获取用户列表
     *
     * @param departmentId 部门ID
     * @return 用户ID列表
     */
    List<Long> getUserIdsByDepartmentId(Long departmentId);

    /**
     * 为用户分配部门
     *
     * @param userId        用户ID
     * @param departmentIds 部门ID列表
     */
    void assignDepartmentsToUser(Long userId, List<Long> departmentIds);

    /**
     * 移除用户的所有部门
     *
     * @param userId 用户ID
     */
    void removeUserDepartments(Long userId);

    /**
     * 移除部门的所有用户
     *
     * @param departmentId 部门ID
     */
    void removeDepartmentUsers(Long departmentId);

    /**
     * 检查用户是否属于指定部门
     *
     * @param userId       用户ID
     * @param departmentId 部门ID
     * @return 是否属于部门
     */
    boolean isUserInDepartment(Long userId, Long departmentId);
} 